fact is package{
 /* two kinds of factorial, this one is integer */
  fact has type (float)=>float;
  fact(0.0) is 1.0;
  
  /* this one is float */
  fact(N) where N>0.0 is N*fact(N-1.0);
         -- a line comment



  fct has type (integer)=>integer;-- and one is integer
  fct(0) is 1;
  fct(N) where N>0 is N*fct(N-1);
}